package com.itheima.advantagesup.service.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.itheima.advantagesup.common.PageBean;
import com.itheima.advantagesup.common.constant.LinkDefaultDateConstant;
import com.itheima.advantagesup.dto.LinkUpdateDTO;
import com.itheima.advantagesup.dto.YddLinkByPageDTO;
import com.itheima.advantagesup.dto.YddLinkDTO;
import com.itheima.advantagesup.entity.YddLink;
import com.itheima.advantagesup.mapper.YddLinkMapper;
import com.itheima.advantagesup.service.YddLinkService;
import com.itheima.advantagesup.vo.YddLinkVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @program: youdianda-2
 * @className: YddLinkServiceImpl
 * @description: TODO
 * @author: xch
 * @createTime: 2023-07-29 14:38
 **/
@Service
public class YddLinkServiceImpl implements YddLinkService {

    @Autowired
    private YddLinkMapper yddLinkMapper;

    @Override
    public PageBean<YddLinkVO> selectByPage(YddLinkByPageDTO yddLinkByPageDTO) {

        PageHelper.startPage(yddLinkByPageDTO.getPage(),yddLinkByPageDTO.getLimit());
        YddLink yddLink = new YddLink();
        BeanUtils.copyProperties(yddLinkByPageDTO,yddLink);

        Page<YddLinkVO> page = yddLinkMapper.selectByType(yddLink);

        return new PageBean<YddLinkVO>((int) page.getTotal(), page.getPages(), yddLinkByPageDTO.getPage(), page.getPageNum(), page.getResult());
    }

    @Override
    public void addYddLink(YddLinkDTO yddLinkDTO) {

        YddLink yddLink = new YddLink();
        BeanUtils.copyProperties(yddLinkDTO,yddLink);
        yddLink.setDefaultData(LinkDefaultDateConstant.DEFAULT_VALUE);

        yddLinkMapper.insertYddLink(yddLink);

    }

    @Override
    public void update(LinkUpdateDTO linkUpdateDTO) {
        YddLink yddLink = new YddLink();
        BeanUtils.copyProperties(linkUpdateDTO,yddLink);
        yddLinkMapper.update(yddLink);
    }

    @Override
    public YddLinkVO selectById(String id) {
        return yddLinkMapper.selectById(id);
    }
}
